﻿Public Class Form1
  ' variabile logica (Boolean) utilizzata per
  ' verificare se è stato premuto il pulsante Aggiungi
  Dim boolAggiungi As Boolean

  Private Sub Aggiungi_Click(
        ByVal sender As System.Object,
        ByVal e As System.EventArgs) _
        Handles Aggiungi.Click

    If Aggiungi.Text.ToLower() = "aggiungi" Then
      Nome.Enabled = True
      Cognome.Enabled = True
      Aggiungi.Text = "Salva"
      Modifica.Text = "Cancella"
      Cancella.Enabled = False
      Nome.Text = ""
      Cognome.Text = ""
      boolAggiungi = True
    Else
      Nome.Enabled = False
      Cognome.Enabled = False
      Aggiungi.Text = "Aggiungi"
      Modifica.Text = "Modifica"
      Cancella.Enabled = True
      If boolAggiungi Then
        AggiungiAListView()
      Else
        ModificaInListView()
      End If
    End If
  End Sub

  Private Sub Modifica_Click(
          ByVal sender As System.Object,
          ByVal e As System.EventArgs) _
          Handles Modifica.Click
    If Nome.Text.Length > 0 Then
      If Modifica.Text.ToLower() = "modifica" Then
        Nome.Enabled = True
        Cognome.Enabled = True
        Aggiungi.Text = "Salva"
        Modifica.Text = "Cancella"
        Cancella.Enabled = False
        boolAggiungi = False
      Else 'cancel process
        Nome.Enabled = False
        Cognome.Enabled = False
        Aggiungi.Text = "Aggiungi"
        Modifica.Text = "Modifica"
        Cancella.Enabled = True
      End If
    Else
      MessageBox.Show("Seleziona il record da modificare")
    End If

  End Sub

  Private Sub AggiungiAListView()
    Dim lv As ListViewItem =
      ListView1.Items.Add(Nome.Text)
    lv.SubItems.Add(Cognome.Text)
  End Sub

  Private Sub ModificaInListView()
    If ListView1.SelectedItems.Count > 0 Then
      ListView1.SelectedItems(0).Text = Nome.Text
      ListView1.SelectedItems(0).SubItems(1).Text =
        Cognome.Text
    End If
  End Sub

  Private Sub Cancella_Click(
      ByVal sender As System.Object,
      ByVal e As System.EventArgs) _
      Handles Cancella.Click
    If ListView1.SelectedItems.Count > 0 AndAlso
        MessageBox.Show("Vuoi cancellare questa voce?",
          "Conferma", MessageBoxButtons.YesNo) =
          Windows.Forms.DialogResult.Yes Then
      ListView1.SelectedItems(0).Remove()
    End If
  End Sub

  Private Sub ListView1_SelectedIndexChanged(
      ByVal sender As System.Object,
      ByVal e As System.EventArgs) _
      Handles ListView1.SelectedIndexChanged
    If ListView1.SelectedItems.Count > 0 Then
      Nome.Text = ListView1.SelectedItems(0).Text
      Cognome.Text =
        ListView1.SelectedItems(0).SubItems(1).Text
    End If
  End Sub
End Class